// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to GNU General Public License v3 license, do not download,
// install, copy or use the software.
//
// OpenPCV is an open source parallel computer vision library.
//
// yang.gao
// 16.08.2009

#if !defined (__PCVCORE_H__)
#define __PCVCORE_H__

#include "pcvversion.h"						// Version
#include "pcvdefs.h"						// Defines

PCVAPI(PcvStatus, pcvInit, (
	));

PCVAPI(PcvStatus, pcvClean, (
	));

PCVAPI(void*, pcvDeviceMalloc, (
	int						host_length
	));

PCVAPI(void*, pcvDeviceMalloc_8u_C1, (
	const PcvSize			host_size
	));

PCVAPI(void, pcvDeviceFree, (
	void*					device_ptr
	));

PCVAPI(PcvStatus, pcvCopyHostToDevice, (
	void*					host_src,
	void*					device_dst,
	int						host_length
	));

PCVAPI(PcvStatus, pcvCopyHostToDevice_8u_C1, (
	void*					host_src,
	void*					device_dst,
	const PcvSize			host_size
	));

PCVAPI(PcvStatus, pcvCopyHostToDevice_8u_C1R, (
	void*					host_src,
	void*					device_dst,
	const PcvSize			host_size,
	const PcvRect			host_roi
	));

PCVAPI(PcvStatus, pcvCopyDeviceToHost, (
	void*					device_src,
	void*					host_dst,
	int						host_length
	));

PCVAPI(PcvStatus, pcvCopyDeviceToHost_8u_C1, (
	void*					device_src,
	void*					host_dst,
	const PcvSize			host_size
	));

PCVAPI(PcvStatus, pcvCopyDeviceToHost_8u_C1R, (
	void*					device_src,
	void*					host_dst,
	const PcvSize			host_size,
	const PcvRect			host_roi
	));

PCVAPI(PcvStatus, pcvCopyDeviceToDevice, (
	void*					device_src,
	void*					device_dst,
	int						host_length
	));

PCVAPI(PcvStatus, pcvCopyDeviceToDevice_8u_C1, (
	void*					device_src,
	void*					device_dst,
	const PcvSize			host_size
	));

PCVAPI(PcvStatus, pcvCopyDeviceToDevice_8u_C1R, (
	void*					device_src,
	void*					device_dst,
	const PcvSize			host_size,
	const PcvRect			host_roi
	));

#endif // __PCVCORE_H__
